package com.ecarx.camera.worker.camera;

import android.location.Location;

import com.ecarx.camera.data.ThumbnailData;
import com.ecarx.camera.ui.camera.ICameraUI;

/**
 * 摄像头操作接口
 */
public interface ICameraWorker {

    /**
     * 初始化
     */
    void init();

    /**
     * 绑定ICameraUI
     * @param cameraUI
     */
    void bindUI(ICameraUI cameraUI);

    /**
     * 页面onResume时执行
     */
    void doOnResume();

    /**
     * 页面onPause时执行
     */
    void doOnPause();

    /**
     * 页面onDestroy时执行
     */
    void doOnDestroy();

    /**
     * 设置Camera的Location
     * @param location
     */
    void setCameraLocation(Location location);

    /**
     * 缩放Camera
     * @param zoomRatio
     */
    void setCameraZoom(float zoomRatio);

    /**
     * 设置录像模式
     * @param isVideoMode
     */
    void setVideoMode(boolean isVideoMode);

    /**
     * 设置是否启用延迟拍照
     * @param usePhotoTimerCountdown
     */
    void setUsePhotoTimerCountdown(boolean usePhotoTimerCountdown);

    /**
     * 设置是否启用延迟录像
     * @param useVideoTimelapseMode
     */
    void setUseVideoTimelapseMode(boolean useVideoTimelapseMode);

    /**
     * 设置Camera是否静音
     * @param isMuted
     * @return
     */
    boolean setCameraAudioMuted(boolean isMuted);

    /**
     * 拍照
     */
    void doCapture();

    /**
     * 开始录像
     */
    void startRecordVideo();

    /**
     * 停止录像
     */
    void stopRecordVideo();

    /**
     * 获取最近拍照或录像的缩略图
     * @return
     */
    ThumbnailData getLatestThumbnail();
}
